package gamefw.framework;

import gamefw.gameplugin.AbstractGameLogic;
import gamefw.gameplugin.GameAbstractFactory;
import gamefw.uiplugin.UIAbstractFactory;

/**
 * The Class GameManager is responsible to initialize all the components that are related.
 * In order to do that, it includes an user interface concrete factory and a game concrete factory.
 * All the initialization is done by calling the appropriate factory methods. The initialization
 * includes binding between each logical component to its corresponding physical
 * component. When the initialization is over it passes control to the
 * AbstractGameLogic which runs the gameloop.
 */
public class GameManager {

	/** The game factory. */
	private GameAbstractFactory gameFactory;
	
	/** The UI factory. */
	private UIAbstractFactory uiFactory;
	
	/** The game logic. */
	private AbstractGameLogic gameLogic;
	
	/**
	 * Initializes the game logic.
	 */
	public void initGame() {
		//TODO add implementation
	}
	
	/**
	 * Initializes the players.
	 */
	public void initPlayer() {
		//TODO add implementation
	}
	
	/**
	 * Initializes the board.
	 */
	public void initBoard() {
		//TODO add implementation		
	}
	
}
